def solve():
n = int(input())
l = [int(x) for x in input().split()]
l = [[1, i] for i in l]
s = 0
for i in range(n - 1):
if l[i][1] == 0 or l[i][1]<l[i][0]:
continue
elif l[i][1] - l[i][0] >=2:
s += 1
else:
if l[i][1]<l[i+1][1]:
if l[i][1]<=2:
l[i+1][0]=3
else: if l[i][1]==3:
if l[i+1][1]==4:
l[i+1][1]=2
else:
l[i + 1][1] = min(l[i][0]-1, l[i + 1][1])
s += 1
if l[n-1][1]<l[n-1][0]:
s+=0
else:
s += 1
print(s)
for w in range(int(input())):
solve()
1343C - Alternating Subsequence | 1325A - EhAb AnD gCd |
746A - Compote | 318A - Even Odds |
550B - Preparing Olympiad | 939B - Hamster Farm |
732A - Buy a Shovel | 1220C - Substring Game in the Lesson |
452A - Eevee | 1647B - Madoka and the Elegant Gift |
1408A - Circle Coloring | 766B - Mahmoud and a Triangle |
1618C - Paint the Array | 469A - I Wanna Be the Guy |
1294A - Collecting Coins | 1227A - Math Problem |
349A - Cinema Line | 47A - Triangular numbers |
1516B - AGAGA XOOORRR | 1515A - Phoenix and Gold |
1515B - Phoenix and Puzzle | 155A - I_love_username |
49A - Sleuth | 1541A - Pretty Permutations |
1632C - Strange Test | 673A - Bear and Game |
276A - Lunch Rush | 1205A - Almost Equal |
1020B - Badge | 1353A - Most Unstable Array |